package com.test.basic50;

/**
 * @author RenGaoshuai
 * @date 2024/7/11 16:33
 * @description 题目：判断101-200之间有多少个素数，并输出所有素数。
 * <p>
 * 程序分析：判断素数的方法：用一个数分别去除2到sqrt(这个数)，如果能被整除，则表明此数不是素数，反之是素数。
 */
public class Basic02 {


    public static void main(String[] args) {
        int num = 0;
        int n = 101;
        int m = 200;
        for (int i = n; i <= m; i++) {
            if (hasSu(i)) {
                num++;
                System.out.println(i);
            }
        }
        System.out.println("在" + n + "和" + m + "之间，一共:" + num + "个素数");
    }

    private static boolean hasSu(int n) {
        if (n < 2) {
            throw new RuntimeException("非法参数，质数表示大于1的自然数");
        }

        for (int i = 2; i <= n / 2; i++) {
            if (n % i == 0) {
                return true;
            }
        }
        return false;
    }
}
